With the creation of the world-wide-web and high speed computer networks, the paradigm for personal computer usage has dramatically shifted. In the past, users would primarily use their personal computers to run programs, and store and manipulate data that was located on their local hard-drive. Only rarely would users store or manipulate data located on a networked drive, or run a program that was provided as a network service, and even then, the programs and data were usually restricted to a local area network. Today, more and more users are storing more and more data on remote data servers, and using remotely provided web-based applications (e.g., SaaS or Software as a Service programs) to manipulate and organize that data. For example, many users today store their personal email and contact information, and even pictures, videos, and music archives on remote servers, and access that data using third party applications that are provided through and controlled by a web-browser.
Cloud computing is a style of computing in which computing resources such as application programs and file storage are remotely provided over the Internet, typically through a web browser. Many web browsers are capable of running applications (e.g., Java applets), which can themselves be application programming interfaces (“API's”) to more sophisticated applications running on remote servers. In the cloud computing paradigm, a web browser interfaces with and controls an application program that is running on a remote server. Through the browser, the user can create, edit, save and delete files on the remote server via the remote application program.
Due to this shift in computer usage, today's computer users are unlikely to want or need many of the bells and whistles provided by modern operating systems. They do not need to worry about file structures or organizing or backing up their data, because much of their data is stored, organized and backed up for them on the cloud. They do, however, require a safe and reliable method to upload data and files to a network or cloud-based server. Moreover, the provider of that upload service needs an efficient and reliable way to receive, store and grant access to uploaded files.